{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "50b0a6ab",
   "metadata": {},
   "source": [
    "* 购物车程序项目：    \n",
    "  \n",
    "     1、运行程序后，让用户输入支付宝余额，然后打印我们的商品列表给用户。\n",
    "\n",
    "     2、让用户输入商品编号进行商品的购买。\n",
    "\n",
    "     3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "\n",
    "     4、用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d2023e63",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "请输入您的余额：100\n",
      "---------- 商 品 清 单 ----------\n",
      "商品编号：0，商品名称:汉堡，商品价格：15元\n",
      "商品编号：1，商品名称:薯条，商品价格：18元\n",
      "商品编号：2，商品名称:可乐，商品价格：10元\n",
      "商品编号：3，商品名称:炸鸡，商品价格：30元\n",
      "商品编号：4，商品名称:鸡肉卷，商品价格：12元\n",
      "请输入正确的商品编号进行购买，如果您想退出程序请按q：1\n",
      "【薯条】已经加入您的购物车，您的【余额】还有82元\n",
      "---------- 商 品 清 单 ----------\n",
      "商品编号：0，商品名称:汉堡，商品价格：15元\n",
      "商品编号：1，商品名称:薯条，商品价格：18元\n",
      "商品编号：2，商品名称:可乐，商品价格：10元\n",
      "商品编号：3，商品名称:炸鸡，商品价格：30元\n",
      "商品编号：4，商品名称:鸡肉卷，商品价格：12元\n",
      "请输入正确的商品编号进行购买，如果您想退出程序请按q：2\n",
      "【可乐】已经加入您的购物车，您的【余额】还有72元\n",
      "---------- 商 品 清 单 ----------\n",
      "商品编号：0，商品名称:汉堡，商品价格：15元\n",
      "商品编号：1，商品名称:薯条，商品价格：18元\n",
      "商品编号：2，商品名称:可乐，商品价格：10元\n",
      "商品编号：3，商品名称:炸鸡，商品价格：30元\n",
      "商品编号：4，商品名称:鸡肉卷，商品价格：12元\n",
      "请输入正确的商品编号进行购买，如果您想退出程序请按q：5\n",
      "您输入的商品不存在，请检查再次输入\n",
      "---------- 商 品 清 单 ----------\n",
      "商品编号：0，商品名称:汉堡，商品价格：15元\n",
      "商品编号：1，商品名称:薯条，商品价格：18元\n",
      "商品编号：2，商品名称:可乐，商品价格：10元\n",
      "商品编号：3，商品名称:炸鸡，商品价格：30元\n",
      "商品编号：4，商品名称:鸡肉卷，商品价格：12元\n",
      "请输入正确的商品编号进行购买，如果您想退出程序请按q：炸鸡\n",
      "请输入正确的【商品编号】！！ 或者按照提示进行输入\n",
      "---------- 商 品 清 单 ----------\n",
      "商品编号：0，商品名称:汉堡，商品价格：15元\n",
      "商品编号：1，商品名称:薯条，商品价格：18元\n",
      "商品编号：2，商品名称:可乐，商品价格：10元\n",
      "商品编号：3，商品名称:炸鸡，商品价格：30元\n",
      "商品编号：4，商品名称:鸡肉卷，商品价格：12元\n",
      "请输入正确的商品编号进行购买，如果您想退出程序请按q：q\n",
      "您的购物车： [['薯条', 18], ['可乐', 10]]\n",
      "您的账户余额：72元\n"
     ]
    }
   ],
   "source": [
    "# 1.让用户输入支付宝余额，然后打印我们的商品列表给用户\n",
    "goods_list = [\n",
    " #  [商品的名称 , 商品价格],\n",
    "    [\"汉堡\",15],\n",
    "    [\"薯条\",18],\n",
    "    [\"可乐\",10],\n",
    "    [\"炸鸡\",30],\n",
    "    [\"鸡肉卷\",12]\n",
    "]\n",
    "#写到某一步 发现前面需要内容，可以优化增加用append\n",
    "user_shopping_list = []     # 给用户一个购物车列表 初始是空的\n",
    "\n",
    "# 用户输入：input   \n",
    "Alipay = int(input(\"请输入您的余额：\"))  # 假设用户输入的是字符串数值 再用int将其转换为整数的数值    ---> 这里的数值默认用户输入的都为整数数字\n",
    "\n",
    "# 打印商品信息，打印商品的次数是由商品列表的长度决定的(len(goods_list))\n",
    "while True:  # 实现以下代码的循环\n",
    "    print(\"---------- 商 品 清 单 ----------\")\n",
    "    for i in range(len(goods_list)):\n",
    "        # 格式化的样式\n",
    "        # 样式：\"商品编号：xxx，商品名称：xxx，商品价格：xx\"\n",
    "        print(\"商品编号：%s，商品名称:%s，商品价格：%s元\" %(i,goods_list[i][0],goods_list[i][1]))\n",
    "\n",
    "    # 2.让用户输入商品编号进行商品的购买\n",
    "\n",
    "    # 用户输入商品编号\n",
    "    choice = input(\"请输入正确的商品编号进行购买，如果您想退出程序请按q：\")\n",
    "    if choice.isdigit():   # 用isdigit来判断字符串是否为数值 因为input输出的是字符串 （这个函数用于判断->）如果这个字符串是数字类型的（字符串的数值）\n",
    "        choice = int(choice)   # 如果字符串是数字类型的，就把把它强制转换为真正的 int（整数的数值）\n",
    "        \n",
    "        # 判断商品编号是否在 我们的范围内\n",
    "        # 3、用户选择商品后，检查用户的余额是否够，若够则直接扣款，不够则提醒用户。\n",
    "        if choice >= len(goods_list):\n",
    "            print(\"您输入的商品不存在，请检查再次输入\")\n",
    "        else:\n",
    "            # 对比商品编号，找到对应商品： 商品价格：goods_list[choice][1]\n",
    "            # 1.检查用户余额VS商品价格的关系\n",
    "            if Alipay > goods_list[choice][1]:\n",
    "                # 买得起 1.扣钱 2.把商品加到用户购物车中\n",
    "                Alipay = Alipay - goods_list[choice][1]\n",
    "                user_shopping_list.append(goods_list[choice])\n",
    "                print(\"【%s】已经加入您的购物车，您的【余额】还有%s元\"%(goods_list[choice][0],Alipay))\n",
    "            else:\n",
    "                print(\"您的余额不足以购买，请更换支付方式\")\n",
    "                \n",
    "    # 4、用户可以随时退出购买，推出时打印用户已购买的商品和支付宝余额\n",
    "    elif choice == \"q\":\n",
    "        # 如果用户输入q 则说明用户想退出程序了，打印用户的购物车列表 以及用户余额给用户\n",
    "        print(\"您的购物车：\",user_shopping_list)\n",
    "        print(\"您的账户余额：%s元\"%(Alipay))\n",
    "        break\n",
    "    else:\n",
    "        print(\"请输入正确的【商品编号】！！ 或者按照提示进行输入\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "140771ae",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
